package br.ucb.ProjetoFinal.view;

import br.ucb.ProjetoFinal.bean.ApresentacaoInscricao;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;

/*
 * Managed bean responsavel pelo caso de uso MANTER EMPREENDIMENTO
 */
@ManagedBean(name="managedInscricao")
@SessionScoped
public class ManagedInscricao {

//////////////////////////////////ATRIBUTOS/////////////////////////////////////

    private ApresentacaoInscricao inscricao;
    private List<ApresentacaoInscricao> inscricoes;

    private Boolean checkTodos;

    
    //Usado no consultaSituacaoInscricoes
    private String codApf;
    private String checkInscAcatadas;
    private String checkInscRejeitadas;
    private String checkInscEnviadas;
    private String checkInscRetornadas;
    private String checkInscNaoRetornadas;
    private String dtInicio;
    private String dtFim;

    //Usado para indicar pesquisa sem resultados
    private Boolean semResults;

////////////////////////////////////////////////////////////////////////////////

    public ManagedInscricao() {
        //Seta o valor inicial para os radio-buttons na pagina da consultaInscricoes
        setInscricao(new ApresentacaoInscricao());
        setDtFim(null);
        setDtInicio(null);
    }

    // METODO USADO PARA CONSULTA SITUACAO DAS INSCRICOES////////////////////////////
        public String procurarSituacao(){
            
            //Se uma das datas for informada e a outra não.......
            if(
                (getDtInicio().isEmpty() && !getDtFim().isEmpty()) ||
                (!getDtInicio().isEmpty() && getDtFim().isEmpty())
               ){
                FacesMessage fm = new FacesMessage("Se uma data for preenchida, a outra também deve ser");
                FacesContext.getCurrentInstance().addMessage("Datas não preenchidas", fm);
                return "consultaSitInscr";
            }
                
            /*setInscricoes(intf.getSituacaoInscricao());

            //Se o array estiver vazio, significa que não foram encontrados resultados
            if(getInscricoes().isEmpty())
                setSemResults(true);
            else
                setSemResults(false);
            */
            return "pInicio";
            
        }
    // FIM DO METODO////////////////////////////////////////////////////////////


    // METODO USADO PARA DETALHAR UMA INSCRICAO/////////////////////////////
        public String detalhar(){
            String index = (String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("index");
            setInscricao(getInscricoes().get(Integer.parseInt(index)));

            return "result";
        }
    // FIM DO METODO////////////////////////////////////////////////////////////


    //FUNÇÃO USADA PARA IR PARA A PAGINA CONSULTA DA INSCRICAO
       public String consultaSituacaoInscricao(){
            setCodApf(null);
            setInscricao(new ApresentacaoInscricao());

            return "consultaSitInscr";
        }
    //FIM DAS FUNÇÕES///////////////////////////////////////////////////////////


//GETTERS & SETTERS/////////////////////////////////////////////////////////////

    public void setSemResults(Boolean semResults) {
        this.semResults = semResults;
    }

    public Boolean getSemResults() {
        return semResults;
    }

    public ApresentacaoInscricao getInscricao() {
        return inscricao;
    }

    public void setInscricao(ApresentacaoInscricao inscricao) {
        this.inscricao = inscricao;
    }

    public List<ApresentacaoInscricao> getInscricoes() {
        return inscricoes;
    }

    public void setInscricoes(List<ApresentacaoInscricao> inscricoes) {
        this.inscricoes = inscricoes;
    }

    public Boolean getCheckTodos() {
        return checkTodos;
    }

    public void setCheckTodos(Boolean checkTodos) {
        this.checkTodos = checkTodos;
    }

    public String getCheckInscAcatadas() {
        return checkInscAcatadas;
    }

    public void setCheckInscAcatadas(String checkInscAcatadas) {
        this.checkInscAcatadas = checkInscAcatadas;
    }

    public String getCheckInscRejeitadas() {
        return checkInscRejeitadas;
    }

    public void setCheckInscRejeitadas(String checkInscRejeitadas) {
        this.checkInscRejeitadas = checkInscRejeitadas;
    }

    public String getCheckInscEnviadas() {
        return checkInscEnviadas;
    }

    public void setCheckInscEnviadas(String checkInscEnviadas) {
        this.checkInscEnviadas = checkInscEnviadas;
    }

    public String getCheckInscRetornadas() {
        return checkInscRetornadas;
    }

    public void setCheckInscRetornadas(String checkInscRetornadas) {
        this.checkInscRetornadas = checkInscRetornadas;
    }


    public String getCheckInscNaoRetornadas() {
        return checkInscNaoRetornadas;
    }

    public void setCheckInscNaoRetornadas(String checkInscNaoRetornadas) {
        this.checkInscNaoRetornadas = checkInscNaoRetornadas;
    }

    public String getDtInicio() {
        return dtInicio;
    }

    public void setDtInicio(String dtInicio) {
        this.dtInicio = dtInicio;
    }

    public String getDtFim() {
        return dtFim;
    }

    public void setDtFim(String dtFim) {
        this.dtFim = dtFim;
    }

    public String getCodApf() {
        return codApf;
    }

    public void setCodApf(String codApf) {
        this.codApf = codApf;
    }

}
